home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctjoc85.arc / LST1ASM.BAS < prev    next >
BASIC Source File  |  1985-07-05  |  2KB  |  56 lines

  1. 100 ' PROGRAM TO CONVERT .LST FILE CREATED BY MASM TO .ASM FILE
  2. 110 '    NOTE:  SET OBJLEN TO 40 IF LISTING WAS PRODUCED
  3. 120 '           WITH .CRF FILE
  4. 130 OBJLEN = 32
  5. 140 '
  6. 150 CLS
  7. 160 PRINT "Enter name of .LST file (no extension)"
  8. 170 INPUT; FIL$
  9. 180 OPEN FIL$+".LST" FOR INPUT AS #1
  10. 190 OPEN FIL$+".ASM" FOR OUTPUT AS #2
  11. 200 PRINT " "
  12. 210 ROW = CSRLIN
  13. 220 COUNT = 0
  14. 230 PRINT COUNT; "     records written"
  15. 240 '
  16. 250 '--------------------------- MAIN PROCESS LOOP
  17. 260 IF EOF(1) GOTO 610
  18. 270 LINE INPUT #1, IN$          'READ A LINE FROM LST FILE
  19. 280 IF LEN(IN$)=0 GOTO 260      'IGNORE NULL LINES
  20. 290 '
  21. 300 ' HANDLE NEW PAGE:  IF START OF SYMBOL TABLE, THEN ALL DONE
  22. 310 '                   OTHERWISE, SKIP 4 LINES OF HEADING
  23. 320 IF LEFT$(IN$,1) <> CHR$(12) GOTO 420
  24. 330   IF INSTR(38, IN$, "Symbol") GOTO 610
  25. 340   FOR X = 2 TO 5
  26. 350     IF EOF(1) GOTO 610
  27. 360     LINE INPUT #1, IN$
  28. 370   NEXT
  29. 380   GOTO 320
  30. 390 '
  31. 400 ' IGNORE LINES GENERATED BY MACRO.
  32. 410 '    THEY HAVE + IN COL OBJLEN-1, NOT PRECEDED BY TABS
  33. 420 IF MID$(IN$,OBJLEN-1,1) = "+" GOTO 260
  34. 430 '
  35. 440 'SCAN INPUT LINE, COUNTING CHARACTERS AND EXPANDING TABS
  36. 450 '  UNTIL OBJLEN CHARACTERS ARE COUNTED OR END OF INPUT LINE.
  37. 460 '  IF END OF LINE, IGNORE IT; OTHERWISE WRITE OUT REMAINDER
  38. 470 '
  39. 480 C = 0 : X = 1
  40. 490 FOR X = 1 TO LEN(IN$)
  41. 500   IF MID$(IN$,X,1)=CHR$(9) THEN C=C+8-C MOD 8 ELSE C=C+1
  42. 510   IF C < OBJLEN GOTO 570
  43. 520   PRINT #2, MID$(IN$, X+1)
  44. 530   COUNT = COUNT + 1
  45. 540   LOCATE ROW,1
  46. 550   PRINT COUNT
  47. 560   GOTO 580
  48. 570 NEXT
  49. 580 GOTO 260            '------------- END OF MAIN LOOP
  50. 590 '
  51. 600 '--------------------------------- WRAPUP PROCESS
  52. 610 PRINT " "
  53. 620 CLOSE
  54. 630 PRINT "File "; FIL$; ".ASM ready"
  55. 640 END
  56.